package com.compasudea.polla.negocio;

import java.util.ArrayList;
import java.util.Collection;
import java.util.ResourceBundle;

import com.compasudea.polla.negocio.dto.EquipoDTO;
import com.compasudea.polla.negocio.dto.PartidoDTO;
import com.compasudea.polla.negocio.dto.ResultadoDTO;
import com.compasudea.polla.negocio.dto.UsuarioDTO;
import com.compasudea.polla.persistencia.Partido;

/**
 * Contiene los metodos necesarios para manejar la informacion de los partidos.
 * @author Ivan Londono
 *
 */
public class PartidoServicios {

	/**
	 * Metodo que permite obtener los partidos por grupos.
	 * @param grupo Grupo al que se le desean buscar los partidos.
	 * @return lista de partidos.
	 */
	public Collection<PartidoDTO> obtenerPartidosPorGrupo(UsuarioDTO user, String grupo) {
		
		Collection<PartidoDTO> partidos = Partido.getPartidosPorGrupo(grupo);
		
		ResultadoDTO resultado;
		
		//recorre los partidos buscando sus respectivos resultados.
		for (PartidoDTO partido: partidos) {
			resultado = Partido.getResultado(partido, user);
			partido.setResultado(resultado);
		}		
		
		return partidos;
	}
	
	/**
	 * Permite crear el resultado de un partido especifico ingresado por un usuario.
	 * @param partido DTO que contiene tanto la informacion del partido como del resultado.
	 * @param user Usuario que ingresa el resultado.
	 */
	public void guardarResultadoPartido(PartidoDTO partido, UsuarioDTO user) {
		
		
		
	}
	
	/**
	 * Permite actualizar el resultado de un partido especifico ingresado por un usuario.
	 * @param partido DTO que contiene tanto la informacion del partido como del resultado.
	 * @param user Usuario que ingresa el resultado.
	 */
	public void actualizarResultadoPartido(PartidoDTO partido, UsuarioDTO user) {
		
	}
	
	/**
	 * Metodo que permite eliminar un marcador
	 * @param partido Partido al que pertenece el resultado a eliminar.
	 * @param user Usuario relacionado al resultado que se va a eliminar para un partido.
	 */
	public void eliminarResultadoPartido(PartidoDTO partido, UsuarioDTO user) {
		
	}
	
	
	
	
	
	/**
	 * Metodo de prueba para probar antes de consultar los equipos.
	 * @return
	 */
	public ArrayList<PartidoDTO> test() {
		
		ResourceBundle imagenesBundle = ResourceBundle.getBundle("propiedades.imagenes");
		
		ArrayList<PartidoDTO> listaPartidosA = new ArrayList<PartidoDTO>();
		
		
		EquipoDTO sudafrica = new EquipoDTO();
		sudafrica.setPosicion(1);
		sudafrica.setNombre("SUDAFRICA");
		sudafrica.setBandera(imagenesBundle.getString("SUDAFRICA"));
		
		EquipoDTO mexico = new EquipoDTO();
		mexico.setPosicion(2);
		mexico.setNombre("MEXICO");
		mexico.setBandera(imagenesBundle.getString("MEXICO"));
		
		EquipoDTO uruguay = new EquipoDTO();
		uruguay.setPosicion(3);
		uruguay.setNombre("URUGUAY");
		uruguay.setBandera(imagenesBundle.getString("URUGUAY"));
		
		EquipoDTO francia = new EquipoDTO();
		francia.setPosicion(4);
		francia.setNombre("FRANCIA");
		francia.setBandera(imagenesBundle.getString("FRANCIA"));
		
		PartidoDTO partido = new PartidoDTO();
		
		partido.setIdPartido(1);
		partido.setEquipo1(sudafrica);
		partido.setEquipo2(mexico);
	/*	partido.setGoles1("");
		partido.setGoles2("");*/

		listaPartidosA.add(partido);
		
		partido = new PartidoDTO();
		partido.setIdPartido(2);
		partido.setEquipo1(uruguay);
		partido.setEquipo2(francia);
		/*partido.setGoles1("");
		partido.setGoles2("");*/
		
		listaPartidosA.add(partido);
		
		partido = new PartidoDTO();
		partido.setIdPartido(17);
		partido.setEquipo1(sudafrica);
		partido.setEquipo2(uruguay);
	/*	partido.setGoles1("");
		partido.setGoles2("");*/
		
		listaPartidosA.add(partido);
		
		partido = new PartidoDTO();
		partido.setIdPartido(18);
		partido.setEquipo1(francia);
		partido.setEquipo2(mexico);
		/*partido.setGoles1("");
		partido.setGoles2("");*/
		
		listaPartidosA.add(partido);
		
		partido = new PartidoDTO();
		partido.setIdPartido(33);
		partido.setEquipo1(mexico);
		partido.setEquipo2(uruguay);
	/*	partido.setGoles1("");
		partido.setGoles2("");*/
		
		listaPartidosA.add(partido);
		
		partido = new PartidoDTO();
		partido.setIdPartido(34);
		partido.setEquipo1(francia);
		partido.setEquipo2(sudafrica);
	/*	partido.setGoles1("");
		partido.setGoles2("");*/
		
		listaPartidosA.add(partido);
		
		return listaPartidosA;
		
	}
}
